package lc.q250_300;

/**
 * 给定一个非负整数 num，反复将各个位上的数字相加，直到结果为一位数。返回这个结果。
 */
public class Q258 {

    public static void main(String[] args) {
        Q258 q258 = new Q258();
        int i = q258.addDigits2(1239);
        System.out.println(i);
    }
    public int addDigits2(int num) {
        // 根据能被9除余数判断
        if (num == 0) {
            return 0;
        }
        // 结果不可能是0
        int rm = num % 9;
        if (rm == 0) {
            return 9;
        }
        return rm;
    }

    public int addDigits(int num) {
        // 常数级如何算呢，数论？
        while (num >= 10) {
            int sum = 0;
            while (num > 0) {
                sum += num % 10;
                num /= 10;
            }
            num = sum;
        }
        return num;
    }
}
